package watercups;
import java.util.ArrayList;
import watercups.operators.WaterCupOperators;
import watercups.states.WaterCupState;
import templates.Operator;
import templates.State;
import algorithms.*;
public class Main {

    public static void main(String[] args) {
    	//Descrierea problemei
    	
    	//Definirea operatorilor
    	ArrayList<Operator<WaterCupState>> waterCupOperators = WaterCupOperators.returnOperators();
    	
    	//Definirea starii initiale
    	State<WaterCupState> waterCupInitialState=WaterCupState.initialState();
    	
    	//Definirea starilor finale
    	ArrayList<State<WaterCupState>> waterCupFinalState=WaterCupState.finalState();
    	
    	//Definirea fisierului de log, care va descrie solutia
    	String WaterCupDepth="WaterCupDepth.txt";
    	
    	//Definirea contextului de rezolvare si executia strategiei respective;
    	Context<WaterCupState> w;
    	w=new Context<WaterCupState> (new DepthStrategy<WaterCupState>());
    	w.executeStrategy(waterCupInitialState, waterCupFinalState, waterCupOperators, WaterCupDepth);
    	
    }

}
